package com.example.java8.feature_03;

import java.time.LocalDate;

public class TestLocalDate {

    public static void main(String[] args){

        LocalDate nowDate = LocalDate.now();
        // 常用方法
        System.out.println("今天日期:" + nowDate);
        System.out.println("年:" + nowDate.getYear());
        System.out.println("月:" + nowDate.getMonth());
        System.out.println("月(数值):" + nowDate.getMonthValue());
        System.out.println("日:" + nowDate.getDayOfMonth());
        System.out.println("周几:" + nowDate.getDayOfWeek());
        System.out.println("当月的第几天:" + nowDate.getDayOfMonth());
        System.out.println("今年的第几天:" + nowDate.getDayOfYear());

        // 加
        LocalDate plusYear = nowDate
                .plusYears(1)           // 加一年
                .plusMonths(1)         // 加一月
                .plusDays(1)             // 加一天
                .plusWeeks(1);          // 加一周
        System.out.println("加后的日期:" + plusYear);

        // 减
        LocalDate minusDate = nowDate
                .minusYears(1)      // 减一年
                .minusMonths(1)    // 减一月
                .minusDays(1)        // 减一天
                .minusWeeks(1);     // 减一周
        System.out.println("减后的日期:" + minusDate);

        // 注意:加减后的得到新LocalDate才是最新日期,而旧的nowDate依旧不变
        System.out.println(nowDate);

        // 修改,这里修改得到的新LocalDate才是最新日志,而旧的nowDate依旧不变
        LocalDate withDate = nowDate.withYear(2016)              // 修改年
                .withMonth(10)              // 修改月
                .withDayOfMonth(7);         // 修改当月的日期
                //.withDayOfYear(256)       // 修改今天的多少天
        System.out.println("修改后的日期" + withDate);

        // 比较
        System.out.println(withDate.isBefore(nowDate));     // 之前
        System.out.println(withDate.isAfter(nowDate));      // 之后
        System.out.println(withDate.isEqual(nowDate));      // 相等
    }

}
